[小ネタ] Amazon Bedrockナレッジベースを「既存のKendraインデックスを使って」作成してみた
みなさん、こんにちは!
福岡オフィスの青柳です。
re:Invent 2024において、Amazon Bedrockナレッジベースと連係可能な「Amazon Kendra GenAI Index」が発表になりました。
さっそく検証してブログを・・・と準備をしていたら、早々に たかくに さんがブログ化していましたね。(早い!)
そういう訳で、趣向を変えて「小ネタ」をお送りすることにします。
既存のKendraを使ってナレッジベースを作成する
ナレッジベースの作成時に「Knowledge Base with Kendra GenAI Index」を選択した場合、以下のいずれかを選択できます。
- 新規にKendra GenAI Indexを作成する
- 既存のKendra GenAI Indexを使用する
前述のたかくにさんのブログ記事では「新規作成」を選択していましたが、今回は「既存のKendra」を使用してみます。
Kendra GenAI Indexを作成する
ナレッジベースを作成する前に、まず、Kendraインデックスを作成します。
インデックス作成ウィザードの最初の画面は、従来のKendraインデックスの作成と変わりません。
続いて、エディションの選択画面です。
従来の「Developer edition」「Enterprise edition」に加えて「GenAI edition」が選択可能になっていますので、こちらを選択します。
最後の「ユーザーアクセスコントロール」の画面では、選択肢が「No」に固定されています。
これは、公式ドキュメントの「制限事項」に書かれているように、GenAIエディションがユーザーアクセスコントロールをサポートしていないためです。
ナレッジベースを作成する
Kendraインデックスが作成されたところで、これを使ってナレッジベースを作成してみましょう。
「ナレッジベースを作成」を選んで「Knowledge Base with Kendra GenAI Index」を選択します。
(ここはKendraインデックスを新規に作成する場合と同じ)
「Use an existing Kendra GenAI Index」を選択します。
作成済みのKendraインデックスが一覧表示されますので、対象のインデックスを選択して「ナレッジベースを作成」を選択します。
「新規にKendraインデックスを作成」を選択した場合はナレッジベースの作成時にKendraインデックスの作成も行われるため数十分程度の時間がかかりましたが、「既存のKendraインデックスを使う」場合には1分もかからずに作成が完了しました。
これでナレッジベースが作成されましたが、ステータス欄が「Ready to add data source in Kendra」となっていて、データソースの追加と「同期」を実行するまではナレッジベースを利用することができません。
Kendraインデックスの管理画面に移動して、データソースの追加と「同期」を行ってください。
(データソースの追加の際には、言語を「English (en)」とすることをお忘れなく! 日本語は現在未サポートなのでエラーになります)
先にKendraインデックスにデータソースを追加していた場合
Kendraインデックスを作成後、先にデータソースの追加と「同期」を実行しておいてから、ナレッジベースを作成することも可能です。
この順番でナレッジベースの作成を行うと、ナレッジベースの作成後に画面丈夫に黄色の警告表示が出てきました。
「データソースの同期が必要」というようなことが書かれていますが、データソースのステータスは「Active」ですし、同期ステータスも「Completed」になっています。
実際にナレッジベースの「テスト」を試してみても正常に動作しますので、単なる表示上の問題ではないかと思います。
GenAIエディション以外のKendraは使えるのか?
ここで、ふと気になる点が出てきました。
ナレッジベースの作成時に「既存のKendra GenAI Indexを使用する」オプションを選択した場合、もしかすると、GenAIエディション以外に従来のエディション (Developer、Enterprise) が選択できたりしないだろうか?という点です。
実際に試してみたところ、こんなふうになりました。
予め「Developerエディション」「Entgerpriseエディション」のKendraインデックスを作成しておいたのですが、選択可能なKendraインデックスの一覧に表示されません。(表示されるのはGenAIエディションのKendraインデックスのみです)
うーん・・・
それでは、AWS CLIを使うとどうなるか?ですが、
% aws bedrock-agent create-knowledge-base \
--region us-east-1 \
--name sample-knowledge-base \
--role-arn arn:aws:iam::123456789012:role/bedrock-knowledge-base-service-role \
--knowledge-base-configuration "type=KENDRA,kendraKnowledgeBaseConfiguration={kendraIndexArn=arn:aws:kendra:us-east-1:123456789012:index/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
An error occurred (ValidationException) when calling the CreateKnowledgeBase operation: The edition ENTERPRISE_EDITION of Kendra Index arn:aws:kendra:us-east-1:123456789012:index/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX is unsupported. Use a Kendra GenAI Index.
エラーになってしまいました。
やっぱりと言うか、ナレッジベースとKendraの連係は「GenAIエディション」のみ対応しているということですね。
注意点
Kendra GenAI Indexを使って作成したナレッジベースを削除する際、「新規作成」を選択した場合でも「既存のKendraを使う」を選択した場合でも、Kendraインデックスは 自動的に削除されません。
GenAIエディションは従来よりも安価だとは言え、削除を忘れてそのままにしておくと、結構な費用が発生してしまいます。
必ず削除するように気を付けましょう。
おわりに
ということで、Kendra GenAI Indexを使ってナレッジベースを作成する際のもう一つのオプション「既存のKendraインデックスを使う」を試してみました。
このオプションを使うと、あるナレッジベースで使っていたKendra GenAI Indexを別のナレッジベースで再利用することもできそうですね。
そのような場面は限定的かもしれませんが、覚えておくと「いざ」というときに助かるかもしれません。